/*
 * @Descripttion: 
 * @version: 
 * @Author: ada.wu
 * @Date: 2023-11-04 22:30:59
 * @LastEditors: ada.wu
 * @LastEditTime: 2023-11-06 22:12:28
 */
import Mock from 'mockjs'

/**
 * CenterMock 模拟数据
 */
class CenterMock {

    // 显示资源列表
    teacherResource(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // ID
                        "courseName": "语文@integer(0,10)",//课程名称
                        "academyName": "计算机学院@integer(0,10)",//所属院系
                        "majorName": "软件工程@integer(0,10)",//所属专业
                        "teacherName": "@cname",//教师名称
                        "title": '×××××@integer(0,3)',//标题
                        "pageviews": '@integer(0,3)',//浏览量
                        "image": 'https://img2.woyaogexing.com/2023/01/29/e904cd20246d38fc5acbc6ac34c6c844.jpeg',//标题
                        'roomName': '1@integer(1,2)7-@integer(1,2)', // 所属教室
                        'topicName': '本科课程', // 分类
                        "pullingState": '@integer(0,2)',//拉取状态                         0、失败，1成功、，2、未拉取,
                        "semesterName": '@integer(2020,2023)-@integer(2020,2023)第@integer(0,3)学期',//学期
                        "course": '公开课',//课程性质
                        "reason": '@integer(0,1)',//状态
                        "liveMode": '@integer(0,1)',//状态
                        'actionTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 录制时间
                        'address': 'http://资源地址/文件名@integer(100,999)',//资源地址
                        "releaseState": '@integer(0,1)',//
                        "taskType": '@integer(0,2)',//发布状态
                        "note": "备注",//备注
                        
                    }
                ],
            },
        })
    }

    // 显示资源列表
    record(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // ID
                        "courseName": "测试课程@integer(0,10)",//课程名称
                        "teacherName": "@cname",//教师名称
                        "pullingState": '@integer(0,2)',//拉取状态                         0、失败，1成功、，2、未拉取,
                        'actionTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 录制时间
                        "pageviews": '@integer(0,3)',//浏览量
                        "title": '@integer(0,3)',//标题
                        "image": 'https://img2.woyaogexing.com/2023/01/29/e904cd20246d38fc5acbc6ac34c6c844.jpeg',//标题
                        'roomName': '1@integer(1,2)7-@integer(1,2)', // 所属教室
                        "releaseState": '@integer(0,2)',//发布状态
                        'address': 'http://资源地址/文件名@integer(100,999)',//资源地址
                        "note": "备注",//备注
                    }
                ],
            },
        })
    }

    /**
     * 解析参数
     * option= {url:'/api/read?id=1', type:'GET', data:null}
     * @param {Object} option 
     * @returns
     */
    parseOption(option) {
        let param = {}
        if (option.url.indexOf('?') > -1) {
            new URLSearchParams(option.url.substring(option.url.indexOf('?') + 1)).forEach((v, k) => {
                param[k] = v;
            })
        }
        if (option.body) {
            if (option.body instanceof FormData) {
                option.body.forEach((v, k) => {
                    param[k] = v;
                })
            } else {
                param = JSON.parse(option.body);
            }
        }
        // 可以通过传参 _success 来控制返回消息的成功状态。默认返回成功消息。
        if (typeof (param._success) != 'boolean') {
            param._success = true; // Mock.mock('@boolean')
        }
        return param;
    }

    /**
     * 返回标准消息对象
     * @param {Boolean} success 
     * @param {String} message 
     * @param {Any} data 
     * @param {Number} code 
     * @returns 
     */
    stdMessage(success, message, data = '', code = 0) {
        return {
            success: success,
            message: message,
            data: data,
            code: code,
        }
    }
}
export default new CenterMock;